iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
自我挑戰組

呼蛇容易遣蛇難,要就當大蟒蛇!一起來Python吧 !系列 第 10

Day 10 函式基礎:定義並呼叫函式

  • 分享至 

  • xImage
  •  

函式基礎

  • 函式可用來程式的包裝:
    同樣的邏輯,可重複使用
    提高了代碼的可讀性、可維護性和重用性。
  • 函式=程式區塊
  • 程式碼包裝在一個區塊中,方便隨時呼叫取用(重複利用
* 重點:函式如果只有定義,沒有“呼叫”,程式就不會執行

定義>呼叫

1.先def定義(建立)函式

2.才能呼叫(使用)函式
#有呼叫才會“執行”程式


定義

記得tab縮排

def 函式名稱(參數名稱):
    函式內部的程式碼
    
備註:參數不一定要寫

定義一個印出Hello的函式

def sayHello():
    print("Hello")

 #此步驟“不會”跑程式因為還沒有呼叫
 #命名不能用中文開頭不能用數字

”呼叫“(執行)上方定義的函式

程式跳到函式的裡面
此步驟才會跑程式

基本語法
函式名稱(參數資料)
sayHello()

定義可以印出任何訊息的函式

def say(Msg):
    print(Msg)
    
這邊的Msg類似變數的功能
把參數的資料印出來


定義一個可以做加法的函式

def add(n1, n2):
    result=n1+n2
    print(result)

定義一個印出Hello的函式

def sayHello():
    print("Hello")
定義函式-有參數:
def say(Msg):
    print(Msg)

呼叫上方定義的函式:

say("HIHI")  #將字串中的資料丟入Msg裡當"參數"印出
say("OKOK")

#HIHI
#OKOK

備註:參數讓我們的程式有彈性


定義一個可以做加法的函式

def add(n1, n2):
    result=n1+n2
    print(result)
    

呼叫函式

add(3,4)
#7

回傳值 (重點)

回傳值=函式結束時丟回來的東西(給電腦的結果

  1. 函式在結束都有回傳值
    print() 回傳值永遠是None

  2. return不一定會呈現
    若無呈現,回傳值永遠是None

    除非有打出return指定

return 基本語法

def 函式名稱(參數名稱):
    函式內部的程式碼
    return 資料     #結束函式

回傳資料,若無資料,回傳值預設: None

備註:
如果只有return 回傳值為 None
如果 return 後面有"資料",回傳值以"資料"為主


multiply(乘法)

函式內部的程式碼:如果沒有呼叫,就不會執行

定義:

def mutiply():
    print(3*4)

呼叫函式:

mutiply()
#12

但寫死,呼叫執行永遠都是12/回傳值=none

給予參數

增加彈性的寫法(如下

def mutiply(n1, n2):
    print(n1*n2)
給予參數帶入

mutiply(3,5)
# 15

mutiply(6*2)
# 12

# 回傳值=none


綜合

def mutiply()
    print(n1*n2)  #印給人類看
    return 10     #給電腦看
    
value=mutiply(3,5)


#程式帶入先印出15
 然後回傳值帶入value再印出10

程式若有從"函式外部"繼續操作資料的需求
可使用回傳值
有回傳值才能把結果帶出來繼續操作

def mutiply(n1, n2):
    return (n1*n2) #若沒有這行回傳,就會變成none,就無法做運算
    
value=mutiply(3,5)+mutiply(2,6)  #value= 回傳15+回傳12 的概念
print(value)

#15+12=27


程式包裝=重複的邏輯可重複利用
函式最大的用途就是作程式的包裝
當類似工作重複出現可重複利用

sum=0

for n in range(1,11):
    sum=sum+n
print(sum)
#55
    
sum=0

for n in range(1,21):
    sum=sum+n
print(sum)
#210

等等等...

以上程式因架構重複
故可包裝程式:

參數只有一個

定義:
def calculate(n):
    sum=0
    for n in range(n+1):  #從1到n
        sum=sum+n  #sum+=n
    print(sum)
    
呼叫:
calculate(10)  #加總 1+...+10=55

參數有兩個


定義:
def calculate(start, end):
    sum=0
    for n in range(start, end+1):  #從S到E
        sum=sum+n  #sum+=n
    print(sum)


calculate(1,10)  #加總 1+...+10=55

rang(n) 用法

1, rang(n) # 從 0 到 n-1
2, rang(a, b) # 從 a 到 b-1
3, rang(a, b, step) 從 a 開始每次加 step 到 b 之前
1, 
rang(n) # 從 0 到 n-1

for i in range(5):
    print(i) # 0,1,2,3,4

2, 
rang(a, b) # 從 a 到 b-1

0+到5
for i in range(0, 6):
    print(i) # 0,1,2,3,4,5

 
若想要包含終點2+到6
n+1

for i in range(0, 7):   #6+1=7
    print(i) # 0,1,2,3,4,5,6
    
3, 
rang(a, b, step)   #step=步數,預設1
從 a 開始每次加 step 到 b 之前

第一種:正向迴圈-遞增
for i in range(0, 10, 2):
    print(i) # 2,4,6,8,10

第二種:倒數迴圈-遞減
for i in range(10, 0, -2):
    print(i) # 10,8,6,4,2
    


上一篇
Day 9 流程控制:迴圈進階控制,break、continue、else 命令
下一篇
Day 11 函式參數詳解:參數預設值、名稱對應、任意長度參數
系列文
呼蛇容易遣蛇難,要就當大蟒蛇!一起來Python吧 !30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言